package almm;

public abstract class GeneralizedState { // s

	private ProperState properState;
	private TimeInstant t;

	protected GeneralizedState(ProperState properState,
			TimeInstant t)
	{
		this.properState = properState;
		this.t = t;
	}
	
	public TimeInstant getT() {
		return t;
	}

	public ProperState getProperState() {
		return properState;
	}

	@Override
	public boolean equals(Object that) {
		return ((that instanceof GeneralizedState)
				&& ((GeneralizedState) that).properState
						.equals(this.properState) && ((GeneralizedState) that).t
				.equals(this.t));
	}

	abstract public Boolean isNotAdmissibleState(); // S_N

	abstract public Boolean isGoalState(); // S_G
}
